// Copyright 2022 a.o.smith ALL Rights Reserved
package com.liuxinlong.modules.standard.service;

import com.liuxinlong.modules.entity.DesignClause;

import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;

/**
 * 设计条款service接口
 *
 * @author liuxinlong@hotwater.com.cn
 * @version 1.0.0
 * @since 2022年2月24日
 */
public interface DesignClauseService {
    /**
     * 分页查询设计条款
     *
     * @param queryParam 查询条件
     * @return 设计条款列表
     */
    List<Map<String, Object>> pageClauseInfo(Map<String, Object> queryParam);

    /**
     * 查询设计条款条数
     *
     * @param queryParam 查询条件
     * @return 设计条款条数
     */
    int getClauseCount(Map<String, Object> queryParam);

    /**
     * 新增设计条款
     *
     * @param designClause 设计条款
     * @param standardId   设计标准id
     */
    void addClauseInfo(DesignClause designClause, String standardId);

    /**
     * 修改设计条款
     *
     * @param designClause 设计条款
     * @param standardId   设计标准id
     */
    void updateClauseInfo(DesignClause designClause, String standardId);

    /**
     * 删除设计条款
     *
     * @param id 设计条款id
     */
    void deleteClauseInfo(String id);

    /**
     * 导出设计条款
     *
     * @param id       设计条款id
     * @param response response
     */
    void exportClauseInfo(String id, HttpServletResponse response);

    /**
     * 查询设计条款下全部条款信息
     *
     * @param standardId 设计条款id
     * @return 设计条款下全部条款新列表
     */
    List<Map<String, Object>> listStandardClause(String standardId);
}
